Practical Concurrent Unrolled Linked Lists Using Lazy Synchronization

نویسندگان

  • Kenneth Platz
  • Neeraj Mittal
  • Subbarayan Venkatesan
چکیده

Linked lists and other list-based sets are one of the most ubiquitous data structures in computer science. They are useful in their own right and are frequently used as building blocks in other data structures. A linked list can be “unrolled” to combine multiple keys in each node; this improves storage density and overall performance. This organization also allows an operation to skip over nodes which cannot contain a key of interest. This paper introduces a new high-performance concurrent unrolled linked list with a lazy synchronization strategy that allows wait-free read operations. Most write operations under this strategy can complete by locking a single node. Experiments show up to a 400% improvement over other concurrent list-based sets.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Proving Correctness of Concurrent Objects by Validating Linearization Points

In the recent years, several concurrent data-structures/objects have been proposed. These data-structures allow multiple threads/process to operate on them concurrently while maintaining consistency. By allowing multiple threads to operate on them simultaneously, these structures strive to increase parallelism. These structures typically involve the operating threads applying different fine-gra...

متن کامل

Improving Functional Logic Programs by Difference-Lists

Modern multi-paradigm declarative languages integrate features from functional, logic, and concurrent programming. In this work, we consider the adaptation of the logic programming transformation based on the introduction of diierence-lists to an integrated setting. Unfortunately, the use of diierence-lists is impractical due to the absence of non-strict equality in lazy (call-by-name) language...

متن کامل

Towards Scalable Synchronization on Multi-Cores

The shift of commodity hardware from singleto multi-core processors in the early 2000s compelled software developers to take advantage of the available parallelism of multi-cores. Unfortunately, only few—so-called embarrassingly parallel—applications can leverage this available parallelism in a straightforward manner. The remaining—non-embarrassingly parallel— applications require that their pr...

متن کامل

Language Features for Re - use and Extensibility in Concurrent Object - Oriented Programming

We investigate and propose two major language features to realize and enhance extensibility and re-usability in concurrent object-oriented (OO) languages. Part 1 addresses inheritance in concurrent-OO languages: re-use of synchronization code in concurrent OO-languages has been considered di cult due to inheritance anomaly, which we analyze and categorize extensively, and minimize with our new ...

متن کامل

Language Features for Re-use and Extensibility in Concurrent Object-oriented Programming Languages

We investigate and propose two major language features to realize and enhance extensibility and re-usability in concurrent object-oriented (OO) languages. Part 1 addresses inheritance in concurrent-OO languages: re-use of synchronization code in concurrent OO-languages has been considered di cult due to inheritance anomaly, which we analyze and categorize extensively, and minimize with our new ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014